//dialect 将 Go 语言的类型映射为数据库中的类型
package dialect

import "reflect"

var dialectsMap = map[string]Dialect{}

//Dialect
type Dialect interface {
	// 用于将 Go 语言的类型转换为该数据库的数据类型。
	DataTypeOf(typ reflect.Value) string
	// 返回某个表是否存在的 SQL 语句，参数是表名(table)。
	TableExistSQL(tableName string) (string, []interface{})
}

//
func RegisterDialect(name string, dialect Dialect) {
	dialectsMap[name] = dialect
}

//
func GetDialect(name string) (Dialect, bool) {
	dialect, ok := dialectsMap[name]
	if !ok{
		return nil, false
	}

	return dialect, true
}
